package cn.xscrum.vtsp.service.impl;

import java.util.List;
import cn.xscrum.common.utils.DateUtils;
import cn.xscrum.vtsp.service.IVtspMessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.xscrum.vtsp.mapper.VtspFeedbackMapper;
import cn.xscrum.vtsp.domain.VtspFeedback;
import cn.xscrum.vtsp.service.IVtspFeedbackService;
import cn.xscrum.common.core.text.Convert;

/**
 * 问题反馈记录Service业务层处理
 * 
 * @author xscrum
 * @date 2021-10-01
 */
@Service
public class VtspFeedbackServiceImpl implements IVtspFeedbackService 
{
    @Autowired
    private VtspFeedbackMapper vtspFeedbackMapper;

    @Autowired
    private IVtspMessageService vtspMessageService;

    /**
	 * 查询问题反馈记录
     * 
     * @param feedbackId 问题反馈记录ID
     * @return 问题反馈记录
     */
    @Override
    public VtspFeedback selectVtspFeedbackById(Long feedbackId)
    {
        return vtspFeedbackMapper.selectVtspFeedbackById(feedbackId);
    }

    /**
	 * 查询问题反馈记录列表
     * 
     * @param vtspFeedback 问题反馈记录
     * @return 问题反馈记录
     */
    @Override
    public List<VtspFeedback> selectVtspFeedbackList(VtspFeedback vtspFeedback)
    {
        return vtspFeedbackMapper.selectVtspFeedbackList(vtspFeedback);
    }

    /**
	 * 新增问题反馈记录
     * 
     * @param vtspFeedback 问题反馈记录
     * @return 结果
     */
    @Override
    public int insertVtspFeedback(VtspFeedback vtspFeedback)
    {
        vtspFeedback.setCreateTime(DateUtils.getNowDate());
        return vtspFeedbackMapper.insertVtspFeedback(vtspFeedback);
    }

    /**
	 * 修改问题反馈记录
     * 
     * @param vtspFeedback 问题反馈记录
     * @return 结果
     */
    @Override
    public int updateVtspFeedback(VtspFeedback vtspFeedback)
    {
        vtspFeedback.setUpdateTime(DateUtils.getNowDate());
        int row = vtspFeedbackMapper.updateVtspFeedback(vtspFeedback);
        //查询完整的问题反馈信息
        VtspFeedback feedback = vtspFeedbackMapper.selectVtspFeedbackById(vtspFeedback.getFeedbackId());
        //如果状态为已解决状态，添加一条消息持久化记录，用于移动端消息(问题反馈-2，反馈id，消息消费者)
        if (vtspFeedback.getState() == 1){
            vtspMessageService.sendMessage(2,feedback.getFeedbackId(),feedback.getVolunteerId());
        }
        return row;
    }

    /**
	 * 删除问题反馈记录对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteVtspFeedbackByIds(String ids)
    {
        return vtspFeedbackMapper.deleteVtspFeedbackByIds(Convert.toStrArray(ids));
    }

    /**
	 * 删除问题反馈记录信息
     * 
     * @param feedbackId 问题反馈记录ID
     * @return 结果
     */
    @Override
    public int deleteVtspFeedbackById(Long feedbackId)
    {
        return vtspFeedbackMapper.deleteVtspFeedbackById(feedbackId);
    }
}
